1. Field
One or more embodiments of the present invention relate to a modulo scheduling method, which is one form among software pipelining techniques, and an apparatus for performing the method.
2. Description of the Related Art
A repeatedly performed loop causes a massive amount of calculations during data processing of a processor and occupies a significant portion of the overall data processing time. To reduce loads for processing such loops, various software pipelining techniques have been suggested.
A modulo scheduling technique is a scheduling technique for reducing loop processing time by changing a loop, such that a plurality of iterations of the loop are performed in parallel. According to a modulo scheduling technique, n+1th iteration of a loop is not initiated after nth iteration of the loop is completed. Rather, the n+1th iteration is initiated while the nth iteration is being processed. As the nth iteration and the n+1th iteration of the loop are pipelined, the nth iteration and the n+1th iteration may be processed in parallel.
In a modulo scheduling method, it is very important to optimize initiation interval (II), which is a difference between an initiation time of the nth iteration and an initiation time of the n+1th iteration, to reduce the overall loop processing time. However, it takes a long period of time to find an optimized initiation interval II.